package com.sky.mapper;

import com.github.pagehelper.Page;
import com.sky.annotation.AutoFill;
import com.sky.entity.Dish;
import com.sky.enumeration.OperationType;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author iTaotao
 * @date 2023/7/28 13:03
 * @desciption: 菜品
 */
@Mapper
public interface DishMapper {
    /**
     * 选择页面
     *
     * @param dish 菜
     * @return {@link Page}<{@link Dish}>
     */

    Page<Dish> selectPage(Dish dish);

    /**
     * 插入盘
     *
     * @param dish 菜
     */
    @AutoFill(OperationType.INSERT)
    void insertDish(Dish dish);


    void deleteDishById(List<Long> ids);

    /**
     * 根据id选择菜
     *
     * @param id id
     * @return {@link Dish}
     */
    @Select("select * from dish where id = #{id}")
    Dish selectDishById(Long id);

    /**
     * 更新菜通过id
     *
     * @param dish 菜
     */
    @AutoFill(OperationType.UPDATE)
    void updateDishById(Dish dish);

    /**
     * 更新状态通过id
     *
     * @param status 状态
     * @param id     id
     */
    void updateStatusById(Integer status, Long id);

    @Select("select * from dish where category_id = #{categoryId}")
    List<Dish> selectList(Long categoryId);

    /**
     * 选择通过id与地位
     *
     * @param ids    id
     * @param status 状态
     * @return {@link Integer}
     */
    Integer selectByIdWithStatus(List<Long> ids, Integer status);

    /**
     * 选择列表
     *
     * @param id id
     * @return {@link List}<{@link Dish}>
     */


}
